﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QldtSdh.BLL;
using QldtSdh.GUI.Common;
using QldtSdh.GUI.Utils;
using QldtSdh.Utils;
namespace QldtSdh.GUI.HeThong
{
    public partial class FormCauHinhHeThong : BaseDialog
    {
        public FormCauHinhHeThong()
        {
            InitializeComponent();
            //var ls = BizConfig.GetConfig();
            //if (ls != null && ls.Count > 0)
            //{
            //    txtTruongPhong.Text = ls["truongphong"];
            //    txtPhoPhong.Text = ls["phophong"];
            //}
            //else
            //{
            //    //Khồng tìm thấy từ tạo file Config.xml mẫu
            //    var rs = ConfigUtil.CreateConfigFile();
            //    if (rs == CODE_RESULT_RETURN.ThanhCong)
            //    {
            //        ls = BizConfig.GetConfig();
            //        if (ls != null && ls.Count > 0)
            //        {
            //            txtTruongPhong.Text = ls["truongphong"];
            //            txtPhoPhong.Text = ls["phophong"];
            //        }
            //    }
            //}
            using (var db = DAL.Models.CEMS4UG_DHKHContext.GetContext())
            {
                txtTruongPhong.Text = BizAppConfig.GetTruongPhong(db);
                txtPhoTruongPhong.Text = BizAppConfig.GetPhoTruongPhong(db);
                txtEmail.Text = BizAppConfig.GetEmail(db);
                txtEmailPassword.Text = BizAppConfig.GetEmailPassword(db);
                txtEmailSmtpServerAddress.Text = BizAppConfig.GetEmailSmtpServerAddress(db);
                txtEmailSmptpServerPort.Text = BizAppConfig.GetEmailSmtpPort(db).ToString();
                chkEmailSSL.Checked = BizAppConfig.GetEmailUseSSL(db);
            }
        }

        //bool ValidataData()
        //{
        //    thongBao.Clear();
        //    if (txtTruongPhong.Text.IsNullOrEmpty())
        //    {
        //        thongBao.SetError(txtTruongPhong, "Bạn không thể đế trống giá trị này");
        //        return false;
        //    }
        //    if (txtPhoTruongPhong.Text.IsNullOrEmpty())
        //    {
        //        thongBao.SetError(txtPhoTruongPhong, "Bạn không thể đế trống giá trị này");
        //        return false;
        //    }
        //    return true;
        //}

        private void bntCapNhat_Click(object sender, EventArgs e)
        {
            //var rs = BizConfig.Update("truongphong", txtTruongPhong.Text);
            //if (rs == CODE_RESULT_RETURN.ThatBai)
            //    DialogUtils.ShowError("Không thể lưu trưởng phòng");
            //else
            //{
            //    rs = BizConfig.Update("phophong", txtPhoPhong.Text);
            //    if (rs == CODE_RESULT_RETURN.ThatBai)
            //        DialogUtils.ShowError("Không thể lưu phó phòng");
            //    else
            //        DialogResult = System.Windows.Forms.DialogResult.OK;
            //}

            #region Thu thập dữ liệu
            thongBao.Clear();
            var truongPhong = txtTruongPhong.Text.Trim();
            if (string.IsNullOrEmpty(truongPhong))
            {
                thongBao.SetError(txtTruongPhong, "Bạn không được để trống thông tin trưởng phòng");
                return;
            }
            var phoTruongPhong = txtPhoTruongPhong.Text.Trim();
            if (string.IsNullOrEmpty(phoTruongPhong))
            {
                thongBao.SetError(txtPhoTruongPhong, "Bạn không được để trống thông tin phó trưởng phòng");
                return;
            }
            var email = txtEmail.Text.Trim();
            var emailPassword = txtEmailPassword.Text;
            if (string.IsNullOrEmpty(email) == false && string.IsNullOrEmpty(emailPassword))
            {
                thongBao.SetError(txtEmailPassword, "Bạn không được để trống mật khẩu thư điện tử");
                return;
            }
            var smtpServerAddress = txtEmailSmtpServerAddress.Text.Trim();
            if (string.IsNullOrEmpty(smtpServerAddress))
            {
                thongBao.SetError(txtEmailSmtpServerAddress, "Địa chỉ máy chủ dùng để gửi thư không hợp lệ");
                return;
            }
            var smtpServerPort = 587;
            try { smtpServerPort = Convert.ToInt32(txtEmailSmptpServerPort.Text); }
            catch
            {
                thongBao.SetError(txtEmailSmptpServerPort, "Số hiệu cổng không hợp lệ. Giá trị mặc định 587");
                return;
            }
            var useSSL = chkEmailSSL.Checked;
            #endregion

            try
            {
                BizAppConfig.SaveAppConfig(truongPhong, phoTruongPhong, email, emailPassword, smtpServerAddress, smtpServerPort, useSSL);
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch (Exception exc)
            {
                DialogUtils.ShowErrorWithDefaultTitle("Không cập nhật thông tin hệ thống được.\r\n", exc.Message);
            }
        }
    }
}
